﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Loja.Banco;

namespace Loja.Aplicação
{
    class TipoCadastroControle
    {
        public LOJA banco { get; set; }

        public TipoCadastroControle(LOJA banco)
        {
            this.banco = banco;
        }

        public void Salvar(TipoCadastro tipocadastro)
        {
            banco.AddToTipoCadastro(tipocadastro);
            banco.SaveChanges();
        }
        /*
        public IEnumerable<TipoCadastro> Listar()
        {
            return banco.TipoCadastro.ToList();
        }
        */

        public Object Listar()
        {
            var tipoCadastroBuscar = (from x in banco.TipoCadastro
                                      where x.Desativado.Equals(false)
                                      select x).ToList();

            return (Object)tipoCadastroBuscar;
        }

        public Object ListarTodos()
        {
            var tipoCadastroBuscar = (from x in banco.TipoCadastro                                     
                                      select x).ToList();

            return (Object)tipoCadastroBuscar;
        }

        public Object BuscarCampo(String campo)
        {
            var tipoCadastroBuscar = (from x in banco.TipoCadastro
                                     where x.Descricao.Contains(campo)
                                     && x.Desativado.Equals(false)
                                     select new
                                     {
                                         Código = x.TipoCadastro_ID,
                                         x.Descricao
                                     });
            return tipoCadastroBuscar;
        }
        
        public void Alterar(TipoCadastro tipoCadastro)
        {
            TipoCadastro tipocadastroSalvar = banco.TipoCadastro.Where(x => x.TipoCadastro_ID == tipoCadastro.TipoCadastro_ID).First();
            tipocadastroSalvar.Descricao = tipoCadastro.Descricao;  
            banco.SaveChanges();
        }

        public void Excluir(TipoCadastro tipocadastro)
        {
            TipoCadastro tipocadastroExcluir = (from x in banco.TipoCadastro
                                               where x.TipoCadastro_ID == tipocadastro.TipoCadastro_ID
                                               && x.Desativado.Equals(false)
                                              select x).First();

            tipocadastroExcluir.Desativado = true;
            banco.SaveChanges();
        }

    /*    public TipoCadastro Buscar()
        {
            var tipocadastroBuscar = (from x in banco.TipoCadastro
                                     where x.TipoCadastro_ID == 1                                      
                                     select x).First();
            return tipocadastroBuscar;

        }*/

        public TipoCadastro Buscar(Int32 tipocadastro)
        {
            TipoCadastro tipocadastroBuscar = (from x in banco.TipoCadastro
                                              where x.TipoCadastro_ID == tipocadastro                                                 
                                             select x).First();

            return tipocadastroBuscar;
        }
    }
}
